package ym.ecrm.core.domain.systemManagement;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * 数据字典类
 * @author Princess
 * @version 1.0
 */
@Entity
@Table(name="t_data_dictionary")
public class DataDictionary {
	/**
	 * Region 地区
	 */
	private static byte DATA_TYPE_REGION = 1;
	/**
	 * Industry 行业
	 */
	private static byte DATA_TYPE_INDUSTRY = 2;
	/**
	 * Customer Source 客户来源
	 */
	private static byte DATA_TYPE_CUSTOMER_SOURCE = 3;
	/**
	 * Relationship level 关系等级
	 */
	private static byte DATA_TYPE_RELATIONSHIP_LEVEL = 4;
	/**
	 * Valuation 价值评估
	 */
	private static byte DATA_TYPE_VALUATION = 5;
	/**
	 * Credit rating 信用等级
	 */
	private static byte DATA_TYPE_CREDIT_RATING = 6;
	/**
	 * Customers heat 客户热度
	 */
	private static byte DATA_TYPE_CUSTOMERS_HEAT = 7;
	/**
	 * Potential customers state 潜在客户状态
	 */
	private static byte DATA_TYPE_POTENTIAL_CUSTOMERS_STATE = 8;
	/**
	 * Market planned priority 市场计划优先级
	 */
	private static byte DATA_TYPE_MARKET_PLANNED_PRIORITY = 9;
	/**
	 * Schedule Status 计划状态
	 */
	private static byte DATA_TYPE_SCHEDULE_STATUS = 10;
	/**
	 * The type of activity 活动类型
	 */
	private static byte DATA_TYPE_ACTIVITY_TYPE = 11;
	/**
	 * Active 活动状态
	 */
	private static byte DATA_TYPE_ACTIVE = 12;
	/**
	 * Impact assessment 效果评估
	 */
	private static byte DATA_TYPE_IMPACT_ASSESSMENT = 13;
	/**
	 * Source of clues 线索来源
	 */
	private static byte DATA_TYPE_SOURCE_OF_CLUES = 14;
	/**
	 * Media types 媒体类型
	 */
	private static byte DATA_TYPE_MEDIA_TYPE = 15;
	/**
	 * Ad status 广告状态
	 */
	private static byte DATA_TYPE_AD_STATUS = 16;
	/**
	 * Printed materials unit 印刷品单位
	 */
	private static byte DATA_TYPE_PRINTED_MATERIALS_UNIT = 17;
	/**
	 * Sources of access 机会来源
	 */
	private static byte DATA_TYPE_SOURCE_OF_ACCESS = 18;
	/**
	 * Progress stage 进展阶段
	 */
	private static byte DATA_TYPE_PROGRESS_STAGE = 19;
	/**
	 * Opportunities possibility 机会可能性
	 */
	private static byte DATA_TYPE_OPPORTUNITYIES_POSSIBILITY = 20;
	/**
	 * Opportunity to state 机会状态
	 */
	private static byte DATA_TYPE_OPPORTUNITY_TO_STATE = 21;
	/**
	 * Tracking Status 跟踪状态
	 */
	private static byte DATA_TYPE_TRACKING_STATUS = 22;
	/**
	 * Product Status 产品状态
	 */
	private static byte DATA_TYPE_PRODUCT_STATUS = 23;
	/**
	 * Terms of Payment 付款方式
	 */
	private static byte DATA_TYPE_TERMS_OF_PAYMENT = 24;
	/**
	 * Contract Status 合同状态
	 */
	private static byte DATA_TYPE_CONTRACT_STATUS = 25;
	/**
	 * Order Status 订单状态
	 */
	private static byte DATA_TYPE_ORDER_STATUS = 26;
	/**
	 * Feedback category 反馈类型
	 */
	private static byte DATA_TYPE_FEEDBACK_CATEGORY = 27;
	/**
	 * Source of feedback 反馈来源
	 */
	private static byte DATA_TYPE_SOURCE_OF_FEEDBACK = 28;
	/**
	 * Feedback processing priority 反馈处理优级
	 */
	private static byte DATA_TYPE_FEEDBACK_PROCESSING_PRIORITY = 29;
	/**
	 * Feedback status 反馈的状态
	 */
	private static byte DATA_TYPE_FEEDBACK_STATUS = 30;
	/**
	 * Q / A Knowledge Base status QA知识库状态
	 */
	private static byte DATA_TYPE_QAKNOWLEDGE_STATUS = 31;
	/**
	 * Receivable / Accounts Payable 应收/应付账款状态
	 */
	private static byte DATA_TYPE_RRCEIVABLE_ACCOUNTS_PAYABLE = 32;
	/**
	 * Method of settlement / payment method 结算方式/付款方式
	 */
	private static byte DATA_TYPE_METHOD_OF_SETTLEMENT_PAYMENT = 33;
	/**
	 * Log level 日志等级
	 */
	private static byte DATA_TYPE_LOG_LEVEL = 34;
	
	
	@Id
	@GeneratedValue
	private long id;
	private String name;
	private byte type;
	
	@ManyToOne
	@JoinColumn(name="parent_id")
	private DataDictionary parent;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public byte getType() {
		return type;
	}

	public void setType(byte type) {
		this.type = type;
	}

	public DataDictionary getParent() {
		return parent;
	}

	public void setParent(DataDictionary parent) {
		this.parent = parent;
	}
	
}
